home *** CD-ROM | disk | FTP | other *** search
- // Persistence Of Vision raytracer version 2.0 sample file.
- // By Rick Mallett of Carleton University, Ottowa.
- // First stage of the Tower of Pisa
- // Warning: This picture can take a very long time to ray trace
- // due to the large number of objects. You have been warned :->
-
- #include "shapes.inc"
- #include "colors.inc"
- #include "textures.inc"
-
- camera {
- location <0.0, 25.0, -150.0>
- direction <0.0, 0.1, 1.0>
- up <0.0, 1.0, 0.0>
- right <4/3, 0.0, 0.0>
- }
-
- #declare Beam = object {
- Cylinder_Y
- scale <0.5, 20.0, 0.5>
- translate 2.0*x
- }
-
- /* create a sample column for the base of the structure */
-
- #declare BaseColumn = intersection {
- union {
- object { Beam }
- object { Beam rotate -25.7*y }
- object { Beam rotate -51.4*y }
- object { Beam rotate -77.1*y }
- object { Beam rotate -102.8*y }
- object { Beam rotate -128.5*y }
- object { Beam rotate -154.2*y }
- object { Beam rotate -179.9*y }
- object { Beam rotate -205.6*y }
- object { Beam rotate -231.3*y }
- object { Beam rotate -257.0*y }
- object { Beam rotate -282.7*y }
- object { Beam rotate -308.4*y }
- object { Beam rotate -334.1*y }
- }
-
- plane { y, 40.0 }
- plane { -y, 0.0 }
-
- bounded_by {
- intersection {
- plane { y, 40.0 }
- plane { -y, 0.0 }
- object { Cylinder_Y scale <2.51 1.0 2.51> }
- }
- }
-
- texture {
- pigment {
- Red_Marble
- scale 10.0
- quick_color red 0.8 green 0.0 blue 0.0
- }
- finish {
- ambient 0.2
- diffuse 0.7
- reflection 0.1
- }
- }
- }
-
- /* and a rectangular pad to serve as a footing for the column */
-
- #declare BasePad = object {
- UnitBox
- scale <4, 1, 4>
-
- texture {
- pigment {
- Red_Marble
- scale 10.0
- quick_color red 0.6 green 0.6 blue 0.4
- }
- finish {
- ambient 0.2
- diffuse 0.7
- reflection 0.1
- }
- }
- }
-
- /* and define a basic arch to span the columns */
-
- #declare BaseArch = intersection {
- object { Cylinder_X scale <1.0, 12.5, 12.5> }
- object { Cylinder_X scale <1.0, 8.5, 8.5> inverse }
- plane { x, 2.0 }
- plane { -x, 2.0 }
- plane { -y, 0.0 }
-
-
- bounded_by {
- sphere { <0, 0, 0>, 1 scale <5.0, 13.0, 13.0> }
- }
-
- texture {
- pigment {
- Red_Marble
- scale 10.0
- quick_color red 0.8 green 0.8 blue 0.8
- }
- finish {
- ambient 0.2
- diffuse 0.7
- reflection 0.1
- }
- }
- }
-
- /* and finally define the first floor floor */
-
- #declare BaseFloor = intersection {
- object { Cylinder_Y scale 50.0 }
- object { Cylinder_Y scale 40.0 inverse }
- plane { y, 2.0 }
- plane { -y, 2.0 }
-
- texture {
- pigment {
- Red_Marble
- scale 10.0
- quick_color red 0.8 green 0.8 blue 0.6
- }
- finish {
- ambient 0.2
- diffuse 0.7
- reflection 0.1
- }
- }
- }
-
- /* place a ring of 14 columns with footings around the base */
-
- #declare FullColumn = union {
- object { BaseColumn translate <45.0, 0.0, 0.0> }
- object { BasePad translate <45.0, -1.0, 0.0> }
- object { BasePad translate <45.0, 41.0, 0.0> }
- object { BaseArch translate <45.0, 42.0, 2.0> rotate <0.0, -12.85, 0.0> }
- }
-
- #declare Level1 = union {
- object { FullColumn }
- object { FullColumn rotate -25.7*y }
- object { FullColumn rotate -51.4*y }
- object { FullColumn rotate -77.1*y }
- object { FullColumn rotate -102.8*y }
- object { FullColumn rotate -128.5*y }
- object { FullColumn rotate -154.2*y }
- object { FullColumn rotate -179.9*y }
- object { FullColumn rotate -205.6*y }
- object { FullColumn rotate -231.3*y }
- object { FullColumn rotate -257.0*y }
- object { FullColumn rotate -282.7*y }
- object { FullColumn rotate -308.4*y }
- object { FullColumn rotate -334.1*y }
- object { FullColumn rotate -334.1*y }
- object { BaseFloor translate 56.5*y }
-
- bounded_by {
- intersection {
- object { Cylinder_Y scale <55.0, 1.0, 55.0> }
- plane { -y, 0.0 }
- plane { y, 60.0 }
- }
- }
- }
-
- object { Level1 }
-
- /* Add the sky to the picture */
- sphere {
- <0.0, 0.0, 0.0>, 300.0
-
- texture {
- pigment {
- bozo
- turbulence 0.5
- colour_map {
- [0.0 0.6 colour red 0.5 green 0.5 blue 1.0
- colour red 0.5 green 0.5 blue 1.0]
- [0.6 0.8 colour red 0.5 green 0.5 blue 1.0
- colour red 1.0 green 1.0 blue 1.0]
- [0.8 1.001 colour red 1.0 green 1.0 blue 1.0
- colour red 0.8 green 0.8 blue 0.8]
- }
- scale <100.0, 20.0, 100.0>
- quick_color red 0.5 green 0.5 blue 1.0
- }
- finish {
- ambient 0.8
- diffuse 0.0
- }
- }
- }
-
- /* Define the desert floor */
- plane {
- y, -2.0
-
- texture {
- pigment { colour red 1.0 green 0.66 blue 0.2 }
- normal {
- ripples 0.5
- frequency 2000.0
- scale 50000.0
- }
- finish {
- crand 0.05 /* This value dithers the colours */
- ambient 0.3
- diffuse 0.7
- }
- }
- }
-
- /* Add a light source */
- light_source { <60.0, 50.0, -110.0> colour White }
-